page.tsx 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import React from 'react';
  2. import {Breadcrumb} from "antd";
  3. import {serverGet} from "@/utils/request";
  4. import './rich.css'
  5. import MainTitle from "@/components/MainTitle";
  6. import ContentNotFound from "@/components/ContentNotFound";
  7. export const dynamicParams = true
  8. export const generateStaticParams = async () => {
  9. const res = await serverGet<Page<NewsUpdates>, { pageNum: number; pageSize: number }>(
  10. "/webSite/getNewsUpdatesListWithoutSpecialNews",
  11. {pageNum: 1, pageSize: 20}, {
  12. next: {
  13. revalidate: 1800
  14. },
  15. cache: "force-cache"
  16. }
  17. )
  18. const res2 = await serverGet<Page<NewsUpdates>, { pageNum: number; pageSize: number }>(
  19. "/webSite/getSpecialNewsUpdatesList",
  20. {pageNum: 1, pageSize: 20}, {
  21. next: {
  22. revalidate: 1800
  23. },
  24. cache: "force-cache"
  25. }
  26. )
  27. return [...res.data.records, ...res2.data.records].map((item) => ({
  28. id: item.id,
  29. }))
  30. }
  31. async function Page({
  32. params,
  33. }: {
  34. params: Promise<{ id: string }>
  35. }) {
  36. const {id} = await params;
  37. const res = await serverGet<NewsUpdates, { id: string }>(
  38. "/webSite/getNewsUpdatesById",
  39. {id}, {
  40. next: {
  41. revalidate: 30
  42. },
  43. cache: "force-cache"
  44. }
  45. )
  46. if (!res.data) {
  47. return <ContentNotFound/>
  48. }
  49. console.log(111,res)
  50. return (
  51. <>
  52. <div className="w-4/5 mx-auto">
  53. <div className="pt-5 sm:pt-10 sm:ml-20 flex gap-2">
  54. <span className="text-sm">您当前的所在位置:</span>
  55. <Breadcrumb
  56. separator=">"
  57. items={[
  58. {title: "新闻列表", href: "/news"},
  59. {title: res.data.newsName || "新闻详情"},
  60. ]}
  61. />
  62. </div>
  63. </div>
  64. <div className="py-6 sm:py-10">
  65. <MainTitle title={"新闻动态"} titleLetter={"NEWS_DYNAMIC"}/>
  66. </div>
  67. <div className="w-4/5 mx-auto flex justify-center items-center">
  68. {/*<div className="">*/}
  69. <span className="text-3xl font-bold ">{res.data.newsName}</span>
  70. {/*</div>*/}
  71. </div>
  72. <div
  73. dangerouslySetInnerHTML={{__html: res.data.newsDetails as string}}
  74. className="ql-editor w-9/10 sm:w-7/10 mx-auto sm:px-20 sm:py-10"
  75. />
  76. </>
  77. );
  78. }
  79. export default Page;